package com.emm.yixun.website.service.ao.DataService;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.emm.yixun.common.model.FamilyMember;
import com.emm.yixun.common.model.Image;
import com.emm.yixun.common.model.dto.FamilyMemberDto;
import com.emm.yixun.website.common.ajax.AjaxRes;
import com.emm.yixun.website.vo.changeroom.SignedChangeVo;

/**
* @ClassName: OaDataService 
* @Description: 数据公用接口 
* @author Administrator 
* @date 2017年6月1日 下午3:10:00 
* @version 1.0
 */
public interface OaDataService {
    /**
    *
    * @Title: getEstateRecord 
    * @Description: 房源信息
    * @param @param roomId
    * @param @return    设定文件 
    * @return JSONObject    返回类型 
    * @throws
     */
    public JSONObject getEstateRecord(Long roomId);
    /**
    *
    * @Title: getCustomerRecord 
    * @Description: 组装客户信息
    * @param @param customerId
    * @param @return    设定文件 
    * @return JSONObject    返回类型 
    * @throws
     */
    public JSONObject getCustomerRecord(Long customerId);
    
    /**
    *
    * @Title: getFamilyMember 
    * @Description:共同购房者
    * @param @param dto
    * @param @return    设定文件 
    * @return List<FamilyMember>    返回类型 
    * @throws
     */
    public List<FamilyMember> getFamilyMember(FamilyMemberDto dto);
    
    /**
    *
    * @Title: getsubscribeRecord 
    * @Description: 认购信息
    * @param @param id
    * @param @return    设定文件 
    * @return JSONObject    返回类型 
    * @throws
     */
    public JSONObject getsubscribeRecord(Long id);
    
    /**
    * @Title: queryProcessImages 
    * @Description: 查询流程附件
    * @param @param objectId
    * @param @param imageType
    * @param @return    设定文件 
    * @return List<Image>    返回类型 
    * @throws
     */
    public List<Image> queryProcessImages(String objectId,String imageType, Long merchantId);
    
    /**
     * 认购换房信息
     * @param subscribeId 认购Id
     * @param businessAbnormaId 销控异常业务Id
     * @return
     */
    public JSONObject loadSubChangeNameInfo(Long subscribeId, String businessAbnormaId);
    
    /**
     * 签约换房信息
     * @param subscribeId 认购Id
     * @param businessAbnormaId 销控异常业务Id
     * @return
     */
    public JSONObject loadSignedChangeNameInfo(Long signedId, String businessAbnormaId);
    
    /**
     * 延期签约
     * @param subscribeId 认购Id
     * @param businessAbnormaId 销控异常业务Id
     * @return
     */
    public JSONObject loadSubDelaySigned(Long subscribeId, String businessAbnormaId);
    
    /**
     * 签约折扣、签约审批
     * @param signedId 认购Id
     * @return
     */
    public Map<String, Object> loadSignedInfo(Long signedId);
    
    /**
     * 签约换房信息
     * @param subscribeId 认购Id
     * @param businessAbnormaId 销控异常业务Id
     * @return
     */
    public SignedChangeVo loadSignedChangeRoomInfo(Long signedId);
    
    /**
     * 应收款延期
     * @param businessAbnormaId 异常业务Id
     * @return
     */
    public JSONObject loadDeferredPaymentDetail(Long businessAbnormaId);
    
    /**
     * processCheck:(流程审核). <br/>
     *
     * @author Administrator
     * @param taskId
     * @param checkStatus
     * @param message
     * @return
     * @since JDK 1.6
     */
    public AjaxRes processCheck(String taskId, String checkStatus, String message,Long userId) throws Exception;
    
    /**
     * 
     * getWorkFlowName:获得流程名称 <br/>
     *
     * @author Administrator
     * @param processId
     * @return
     * @since JDK 1.6
     */
    public String getWorkFlowName(String processId);
    
    /**
     * 
     * getOaId:获取当前登录人. <br/>
     *
     * @author Administrator
     * @param userticket
     * @return
     * @since JDK 1.6
     */
    public HashMap<String, String> getOaId(String userId,String userticket);
    
    /**
     * 根据用户userticket 获得用户
     * @param userticket
     * @return
     */
    public HashMap<String, String> getUser(String userticket);
    
    
}
